<!DOCTYPE html>
<html lang="zh-CN">
<head>
  <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=2">
<meta name="theme-color" content="#222">
<meta name="generator" content="Hexo 6.0.0">
  <link rel="apple-touch-icon" sizes="180x180" href="/images/icon.png">
  <link rel="icon" type="image/png" sizes="32x32" href="/images/ficon.png">
  <link rel="icon" type="image/png" sizes="16x16" href="/images/icon.png">
  <link rel="mask-icon" href="/images/icon.png" color="#222">

<link rel="stylesheet" href="/css/main.css">


<link rel="stylesheet" href="/lib/font-awesome/css/all.min.css">
  <link rel="stylesheet" href="/lib/pace/pace-theme-minimal.min.css">
  <script src="/lib/pace/pace.min.js"></script>

<script id="hexo-configurations">
    var NexT = window.NexT || {};
    var CONFIG = {"hostname":"bqlin.github.io","root":"/","scheme":"Gemini","version":"7.8.0","exturl":false,"sidebar":{"position":"left","display":"post","padding":18,"offset":12,"onmobile":false},"copycode":{"enable":false,"show_result":false,"style":null},"back2top":{"enable":true,"sidebar":false,"scrollpercent":false},"bookmark":{"enable":false,"color":"#222","save":"auto"},"fancybox":false,"mediumzoom":false,"lazyload":false,"pangu":true,"comments":{"style":"tabs","active":"gitalk","storage":true,"lazyload":false,"nav":{"gitalk":{"order":-2}},"activeClass":"gitalk"},"algolia":{"hits":{"per_page":10},"labels":{"input_placeholder":"Search for Posts","hits_empty":"We didn't find any results for the search: ${query}","hits_stats":"${hits} results found in ${time} ms"}},"localsearch":{"enable":true,"trigger":"auto","top_n_per_article":-1,"unescape":false,"preload":false},"motion":{"enable":false,"async":true,"transition":{"post_block":"fadeIn","post_header":"slideDownIn","post_body":"slideDownIn","coll_header":"slideLeftIn","sidebar":"slideUpIn"}},"path":"search.xml"};
  </script>

  <meta name="description" content="程序 application A specific style of program that displays a graphical interface to the user. 一种特定风格的向用户显示图形界面的program。">
<meta property="og:type" content="article">
<meta property="og:title" content="Concurrency Programming Guide：术语表">
<meta property="og:url" content="https://bqlin.github.io/posts/concurrency_pg_glossary/index.html">
<meta property="og:site_name" content="權咚领域">
<meta property="og:description" content="程序 application A specific style of program that displays a graphical interface to the user. 一种特定风格的向用户显示图形界面的program。">
<meta property="og:locale" content="zh_CN">
<meta property="article:published_time" content="2021-09-08T09:45:58.000Z">
<meta property="article:modified_time" content="2021-10-24T04:12:53.000Z">
<meta property="article:author" content="權咚">
<meta property="article:tag" content="Apple">
<meta property="article:tag" content="多线程">
<meta property="article:tag" content="Concurrency Programming Guide">
<meta name="twitter:card" content="summary">

<link rel="canonical" href="https://bqlin.github.io/posts/concurrency_pg_glossary/">


<script id="page-configurations">
  // https://hexo.io/docs/variables.html
  CONFIG.page = {
    sidebar: "",
    isHome : false,
    isPost : true,
    lang   : 'zh-CN'
  };
</script>

  <title>Concurrency Programming Guide：术语表 | 權咚领域</title>
  
    <script async src="https://www.googletagmanager.com/gtag/js?id=UA-105338942-1"></script>
    <script>
      if (CONFIG.hostname === location.hostname) {
        window.dataLayer = window.dataLayer || [];
        function gtag(){dataLayer.push(arguments);}
        gtag('js', new Date());
        gtag('config', 'UA-105338942-1');
      }
    </script>


  <script>
    var _hmt = _hmt || [];
    (function() {
      var hm = document.createElement("script");
      hm.src = "https://hm.baidu.com/hm.js?98fcf61fd269408d07dcbc1e49311f9a";
      var s = document.getElementsByTagName("script")[0];
      s.parentNode.insertBefore(hm, s);
    })();
  </script>




  <noscript>
  <style>
  .use-motion .brand,
  .use-motion .menu-item,
  .sidebar-inner,
  .use-motion .post-block,
  .use-motion .pagination,
  .use-motion .comments,
  .use-motion .post-header,
  .use-motion .post-body,
  .use-motion .collection-header { opacity: initial; }

  .use-motion .site-title,
  .use-motion .site-subtitle {
    opacity: initial;
    top: initial;
  }

  .use-motion .logo-line-before i { left: initial; }
  .use-motion .logo-line-after i { right: initial; }
  </style>
</noscript>

<link rel="alternate" href="/atom.xml" title="權咚领域" type="application/atom+xml">
</head>

<body itemscope itemtype="http://schema.org/WebPage">
  <div class="container">
    <div class="headband"></div>

    <header class="header" itemscope itemtype="http://schema.org/WPHeader">
      <div class="header-inner"><div class="site-brand-container">
  <div class="site-nav-toggle">
    <div class="toggle" aria-label="切换导航栏">
      <span class="toggle-line toggle-line-first"></span>
      <span class="toggle-line toggle-line-middle"></span>
      <span class="toggle-line toggle-line-last"></span>
    </div>
  </div>

  <div class="site-meta">

    <a href="/" class="brand" rel="start">
      <span class="logo-line-before"><i></i></span>
      <h1 class="site-title">權咚领域</h1>
      <span class="logo-line-after"><i></i></span>
    </a>
      <p class="site-subtitle" itemprop="description">Making app a work of art.</p>
  </div>

  <div class="site-nav-right">
    <div class="toggle popup-trigger">
        <i class="fa fa-search fa-fw fa-lg"></i>
    </div>
  </div>
</div>




<nav class="site-nav">
  <ul id="menu" class="main-menu menu">
        <li class="menu-item menu-item-home">

    <a href="/" rel="section"><i class="fa fa-home fa-fw"></i>首页</a>

  </li>
        <li class="menu-item menu-item-archives">

    <a href="/archives/" rel="section"><i class="fa fa-archive fa-fw"></i>归档</a>

  </li>
        <li class="menu-item menu-item-tags">

    <a href="/tags/" rel="section"><i class="fa fa-tags fa-fw"></i>标签</a>

  </li>
        <li class="menu-item menu-item-categories">

    <a href="/categories/" rel="section"><i class="fa fa-th fa-fw"></i>分类</a>

  </li>
        <li class="menu-item menu-item-about">

    <a href="/about/" rel="section"><i class="fa fa-user fa-fw"></i>关于</a>

  </li>
      <li class="menu-item menu-item-search">
        <a role="button" class="popup-trigger"><i class="fa fa-search fa-fw"></i>搜索
        </a>
      </li>
  </ul>
</nav>



  <div class="search-pop-overlay">
    <div class="popup search-popup">
        <div class="search-header">
  <span class="search-icon">
    <i class="fa fa-search"></i>
  </span>
  <div class="search-input-container">
    <input autocomplete="off" autocapitalize="off"
           placeholder="搜索..." spellcheck="false"
           type="search" class="search-input">
  </div>
  <span class="popup-btn-close">
    <i class="fa fa-times-circle"></i>
  </span>
</div>
<div id="search-result">
  <div id="no-result">
    <i class="fa fa-spinner fa-pulse fa-5x fa-fw"></i>
  </div>
</div>

    </div>
  </div>

</div>
    </header>

    
  <div class="back-to-top">
    <i class="fa fa-arrow-up"></i>
    <span>0%</span>
  </div>


    <main class="main">
      <div class="main-inner">
        <div class="content-wrap">
          

          <div class="content post posts-expand">
            

    
  
  
  <article itemscope itemtype="http://schema.org/Article" class="post-block" lang="zh-CN">
    <link itemprop="mainEntityOfPage" href="https://bqlin.github.io/posts/concurrency_pg_glossary/">

    <span hidden itemprop="author" itemscope itemtype="http://schema.org/Person">
      <meta itemprop="image" content="/images/icon.png">
      <meta itemprop="name" content="權咚">
      <meta itemprop="description" content="🤘🤯👾">
    </span>

    <span hidden itemprop="publisher" itemscope itemtype="http://schema.org/Organization">
      <meta itemprop="name" content="權咚领域">
    </span>
      <header class="post-header">
        <h1 class="post-title" itemprop="name headline">
          Concurrency Programming Guide：术语表
        </h1>

        <div class="post-meta">
            <span class="post-meta-item">
              <span class="post-meta-item-icon">
                <i class="far fa-calendar"></i>
              </span>
              <span class="post-meta-item-text">发表于</span>

              <time title="创建时间：2021-09-08 17:45:58" itemprop="dateCreated datePublished" datetime="2021-09-08T17:45:58+08:00">2021-09-08</time>
            </span>
              <span class="post-meta-item">
                <span class="post-meta-item-icon">
                  <i class="far fa-calendar-check"></i>
                </span>
                <span class="post-meta-item-text">更新于</span>
                <time title="修改时间：2021-10-24 12:12:53" itemprop="dateModified" datetime="2021-10-24T12:12:53+08:00">2021-10-24</time>
              </span>
            <span class="post-meta-item">
              <span class="post-meta-item-icon">
                <i class="far fa-folder"></i>
              </span>
              <span class="post-meta-item-text">分类于</span>
                <span itemprop="about" itemscope itemtype="http://schema.org/Thing">
                  <a href="/categories/%E7%BF%BB%E8%AF%91/" itemprop="url" rel="index"><span itemprop="name">翻译</span></a>
                </span>
            </span>

          
            <span class="post-meta-item" title="阅读次数" id="busuanzi_container_page_pv" style="display: none;">
              <span class="post-meta-item-icon">
                <i class="fa fa-eye"></i>
              </span>
              <span class="post-meta-item-text">阅读次数：</span>
              <span id="busuanzi_value_page_pv"></span>
            </span><br>
            <span class="post-meta-item" title="本文字数">
              <span class="post-meta-item-icon">
                <i class="far fa-file-word"></i>
              </span>
                <span class="post-meta-item-text">本文字数：</span>
              <span>7.9k</span>
            </span>
            <span class="post-meta-item" title="阅读时长">
              <span class="post-meta-item-icon">
                <i class="far fa-clock"></i>
              </span>
                <span class="post-meta-item-text">阅读时长 &asymp;</span>
              <span>7 分钟</span>
            </span>

        </div>
      </header>

    
    
    
    <div class="post-body" itemprop="articleBody">

      
        <p><strong>程序 application</strong></p>
<p>A specific style of <a target="_blank" rel="noopener" href="https://developer.apple.com/library/archive/documentation/General/Conceptual/ConcurrencyProgrammingGuide/Glossary/Glossary.html#//apple_ref/doc/uid/TP40008091-CH104-SW13">program</a> that displays a graphical interface to the user.</p>
<p>一种特定风格的向用户显示图形界面的<a target="_blank" rel="noopener" href="https://developer.apple.com/library/archive/documentation/General/Conceptual/ConcurrencyProgrammingGuide/Glossary/Glossary.html#//apple_ref/doc/uid/TP40008091-CH104-SW13">program</a>。</p>
<span id="more"></span>
<hr />
<p><strong>异步设计法 asynchronous design approach</strong></p>
<p>The principle of organizing an application around blocks of code that can be run concurrently with an application’s main thread or other threads of execution. Asynchronous tasks are started by one thread but actually run on a different thread, taking advantage of additional processor resources to finish their work more quickly.</p>
<p>围绕可与程序主线程或其他执行线程同时运行的block来组织程序的原则。异步任务由一个线程启动，但实际上在不同的线程上运行，利用额外的处理器资源，更快完成工作。</p>
<hr />
<p><strong>block object</strong></p>
<p>A C construct for encapsulating inline code and data so that it can be performed later. You use blocks to encapsulate tasks you want to perform, either inline in the current thread or on a separate thread using a dispatch queue. For more information, see <a target="_blank" rel="noopener" href="https://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/Blocks/Articles/00_Introduction.html#//apple_ref/doc/uid/TP40007502">Blocks Programming Topics</a>.</p>
<p>一种C结构，用于封装内联代码和数据，以便以后执行。你可以使用block来封装你想执行的任务，可以在当前线程中内联，也可以在一个单独的线程中使用调度队列。了解更多信息，可参阅<a target="_blank" rel="noopener" href="https://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/Blocks/Articles/00_Introduction.html#//apple_ref/doc/uid/TP40007502">Blocks Programming Topics</a>。</p>
<hr />
<p><strong>并发操作 concurrent operation</strong></p>
<p>An operation object that does not perform its task in the thread from which its <code>start</code> method was called. A concurrent operation typically sets up its own thread or calls an interface that sets up a separate thread on which to perform the work.</p>
<p>一个操作对象，它不在调用其<code>start</code>方法的线程中执行其任务。一个并发操作通常会设置自己的线程，或者调用一个接口，设置一个单独的线程来执行工作。</p>
<hr />
<p><strong>条件 condition</strong></p>
<p>A construct used to synchronize access to a resource. A thread waiting on a condition is not allowed to proceed until another thread explicitly signals the condition.</p>
<p>一个用于同步访问资源的结构。在一个条件下等待的线程不允许继续进行，直到另一个线程明确发出条件信号。</p>
<hr />
<p><strong>关键部分 critical section</strong></p>
<p>A portion of code that must be executed by only one thread at a time.</p>
<p>一次只能由一个线程执行的部分代码。</p>
<hr />
<p><strong>自定义源 custom source</strong></p>
<p>A <a target="_blank" rel="noopener" href="https://developer.apple.com/library/archive/documentation/General/Conceptual/ConcurrencyProgrammingGuide/Glossary/Glossary.html#//apple_ref/doc/uid/TP40008091-CH104-SW19">dispatch source</a> used to process application-defined events. A custom source calls your custom event handler in response to events that your application generates.</p>
<p>一个用于handler定义的事件的调度源。自定义源调用自定义事件handler，以响应程序产生的事件。</p>
<hr />
<p><strong>描述符 descriptor</strong></p>
<p>An abstract identifier used to access a file, socket, or other system resource.</p>
<p>用于访问文件、套接字或其他系统资源的一个抽象标识符。</p>
<hr />
<p><strong>调度队列 dispatch queue</strong></p>
<p>A <a target="_blank" rel="noopener" href="https://developer.apple.com/library/archive/documentation/General/Conceptual/ConcurrencyProgrammingGuide/Glossary/Glossary.html#//apple_ref/doc/uid/TP40008091-CH104-SW23">Grand Central Dispatch (GCD)</a> structure that you use to execute your application’s tasks. GCD defines dispatch queues for executing tasks either serially or concurrently.</p>
<p>一个GCD数据结构，用它来执行程序的任务。GCD定义了用于串行或并发执行任务的调度队列。</p>
<hr />
<p><strong>调度源 dispatch source</strong></p>
<p>A <a target="_blank" rel="noopener" href="https://developer.apple.com/library/archive/documentation/General/Conceptual/ConcurrencyProgrammingGuide/Glossary/Glossary.html#//apple_ref/doc/uid/TP40008091-CH104-SW23">Grand Central Dispatch (GCD)</a> data structure that you create to process system-related events.</p>
<p>一个GCD数据结构，创建它来处理系统相关事件。</p>
<hr />
<p><strong>描述符调度源 descriptor dispatch source</strong></p>
<p>A <a target="_blank" rel="noopener" href="https://developer.apple.com/library/archive/documentation/General/Conceptual/ConcurrencyProgrammingGuide/Glossary/Glossary.html#//apple_ref/doc/uid/TP40008091-CH104-SW19">dispatch source</a> used to process file-related events. A file descriptor source calls your custom event handler either when file data is available for reading or writing or in response to file system changes.</p>
<p>一个用于处理文件相关事件的调度源。文件描述符源在文件数据可供读写时或在文件系统变化时调用自定义事件处理器。</p>
<hr />
<p><strong>动态共享库 dynamic shared library</strong></p>
<p>A binary executable that is loaded dynamically into an application’s process space rather than linked statically as part of the application binary.</p>
<p>一个二进制可执行文件，它被动态加载到程序的进程空间，而不是作为程序二进制的一部分静态链接。</p>
<hr />
<p><strong>framework</strong></p>
<p>A type of bundle that packages a dynamic shared library with the resources and header files that support that library. For more information, see <a target="_blank" rel="noopener" href="https://developer.apple.com/library/archive/documentation/MacOSX/Conceptual/BPFrameworks/Frameworks.html#//apple_ref/doc/uid/10000183i">Framework Programming Guide</a>.</p>
<p>一种捆绑类型，将动态共享库与支持该库的资源和头文件打包。更多信息，可参阅<a target="_blank" rel="noopener" href="https://developer.apple.com/library/archive/documentation/MacOSX/Conceptual/BPFrameworks/Frameworks.html#//apple_ref/doc/uid/10000183i">Framework Programming Guide</a>。</p>
<hr />
<p><strong>全局调度队列 global dispatch queue</strong></p>
<p>A <a target="_blank" rel="noopener" href="https://developer.apple.com/library/archive/documentation/General/Conceptual/ConcurrencyProgrammingGuide/Glossary/Glossary.html#//apple_ref/doc/uid/TP40008091-CH104-SW9">dispatch queue</a> provided to your application automatically by <a target="_blank" rel="noopener" href="https://developer.apple.com/library/archive/documentation/General/Conceptual/ConcurrencyProgrammingGuide/Glossary/Glossary.html#//apple_ref/doc/uid/TP40008091-CH104-SW23">Grand Central Dispatch (GCD)</a>. You do not have to create global queues yourself or retain or release them. Instead, you retrieve them using the system-provided functions.</p>
<p>由GCD自动提供给程序的一个调度队列。你不需要自己创建全局队列，也不需要保留或释放它们。相反，你可以使用系统提供的函数来检索它们。</p>
<hr />
<p><strong>Grand Central Dispatch (GCD)</strong></p>
<p>A technology for executing asynchronous tasks concurrently. GCD is available in OS X v10.6 and later and iOS 4.0 and later.</p>
<p>一种用于并发执行异步任务的技术。GCD在OS X v10.6及以后版本和iOS 4.0及以后版本中可用。</p>
<hr />
<p><strong>输入源 input source</strong></p>
<p>A source of asynchronous events for a thread. Input sources can be port based or manually triggered and must be attached to the thread’s run loop.</p>
<p>一个线程的异步事件的来源。输入源可以是基于端口的，也可以是手动触发的，必须连接到线程的run loop。</p>
<hr />
<p><strong>可连接线程 joinable thread</strong></p>
<p>A thread whose resources are not reclaimed immediately upon termination. Joinable threads must be explicitly detached or be joined by another thread before the resources can be reclaimed. Joinable threads provide a return value to the thread that joins with them.</p>
<p>一个线程，其资源在终止时不会被立即回收。可加入的线程必须明确地被分离或被另一个线程加入，然后才可以回收资源。可加入的线程为与之加入的线程提供一个返回值。</p>
<p><strong>库 library</strong></p>
<p>A UNIX feature for monitoring low-level system events. For more information see the <code>kqueue</code> man page.</p>
<p>一个UNIX功能，用于监控低级别的系统事件。更多信息可参阅 <code>kqueue</code> man page。</p>
<hr />
<p><strong>Mach port dispatch source</strong></p>
<p>A <a target="_blank" rel="noopener" href="https://developer.apple.com/library/archive/documentation/General/Conceptual/ConcurrencyProgrammingGuide/Glossary/Glossary.html#//apple_ref/doc/uid/TP40008091-CH104-SW19">dispatch source</a> used to process events arriving on a Mach port.</p>
<p>一个用于处理到达Mach端口事件的调度源。</p>
<hr />
<p><strong>主线程 main thread</strong></p>
<p>A special type of <a target="_blank" rel="noopener" href="https://developer.apple.com/library/archive/documentation/General/Conceptual/ConcurrencyProgrammingGuide/Glossary/Glossary.html#//apple_ref/doc/uid/TP40008091-CH104-SW1">thread</a> created when its owning process is created. When the main thread of a program exits, the process ends.</p>
<p>一个特殊类型的线程，在其所属的进程被创建时创建。当一个程序的主线程退出时，该进程就结束了。</p>
<hr />
<p><strong>互斥锁 mutex</strong></p>
<p>A lock that provides mutually exclusive access to a shared resource. A mutex lock can be held by only one thread at a time. Attempting to acquire a mutex held by a different thread puts the current thread to sleep until the lock is finally acquired.</p>
<p>一个提供对共享资源的互斥访问的锁。一个互斥锁在同一时间只能由一个线程持有。试图获取一个由不同线程持有的互斥锁会使当前线程陷入休眠状态，直到最终获得该锁。</p>
<hr />
<p><strong>Open Computing Language (OpenCL)</strong></p>
<p>A standards-based technology for performing general-purpose computations on a computer’s graphics processor. For more information, see <a target="_blank" rel="noopener" href="https://developer.apple.com/library/archive/documentation/Performance/Conceptual/OpenCL_MacProgGuide/Introduction/Introduction.html#//apple_ref/doc/uid/TP40008312">OpenCL Programming Guide for Mac</a>.</p>
<p>一种基于标准的技术，用于在计算机的图形处理器上进行通用计算。更多信息，可参阅<a target="_blank" rel="noopener" href="https://developer.apple.com/library/archive/documentation/Performance/Conceptual/OpenCL_MacProgGuide/Introduction/Introduction.html#//apple_ref/doc/uid/TP40008312">OpenCL Programming Guide for Mac</a>。</p>
<hr />
<p><strong>操作对象 operation object</strong></p>
<p>An instance of the <code>NSOperation</code> class. Operation objects wrap the code and data associated with a task into an executable unit.</p>
<p><code>NSOperation</code>类的一个实例。操作对象将与一个任务相关的代码和数据包装成一个可执行的单元。</p>
<hr />
<p><strong>操作队列 operation queue</strong></p>
<p>An instance of the <code>NSOperationQueue</code> class. Operation queues manage the execution of operation objects.</p>
<p><code>NSOperationQueue</code>类的一个实例。操作队列管理操作对象的执行。</p>
<hr />
<p><strong>私有调度队列 private dispatch queue</strong></p>
<p>A <a target="_blank" rel="noopener" href="https://developer.apple.com/library/archive/documentation/General/Conceptual/ConcurrencyProgrammingGuide/Glossary/Glossary.html#//apple_ref/doc/uid/TP40008091-CH104-SW9">dispatch queue</a> that you create, retain, and release explicitly.</p>
<p>自己明确创建、保留和释放的调度队列。</p>
<hr />
<p><strong>进程 process</strong></p>
<p>The runtime instance of an application or program. A process has its own virtual memory space and system resources (including port rights) that are independent of those assigned to other programs. A process always contains at least one thread (the main thread) and may contain any number of additional threads.</p>
<p>一个程序或程序的运行时实例。一个进程有自己的虚拟内存空间和系统资源（包括端口权限），独立于分配给其他程序的资源。一个进程总是包含至少一个线程（主线程），并可能包含任何数量的附加线程。</p>
<hr />
<p><strong>进程调度源 process dispatch source</strong></p>
<p>A <a target="_blank" rel="noopener" href="https://developer.apple.com/library/archive/documentation/General/Conceptual/ConcurrencyProgrammingGuide/Glossary/Glossary.html#//apple_ref/doc/uid/TP40008091-CH104-SW19">dispatch source</a> used to handle process-related events. A process source calls your custom event handler in response to changes to the process you specify.</p>
<p>用于处理与进程有关的事件的调度源。进程源在响应指定的进程的变化时调用自定义事件handler。</p>
<hr />
<p><strong>程序 program</strong></p>
<p>A combination of code and resources that can be run to perform some task. Programs need not have a graphical user interface, although graphical applications are also considered programs.</p>
<p>一个代码和资源的组合，可以运行以执行一些任务。程序不需要有图形用户界面，尽管图形应用程序也被认为是程序。</p>
<hr />
<p><strong>可重入的 reentrant</strong></p>
<p>Code that can be started on a new thread safely while it is already running on another thread.</p>
<p>当代码已经在一个线程上运行时，可以在另一个新的线程上安全启动。</p>
<hr />
<p><strong>run loop</strong></p>
<p>An event-processing loop, during which events are received and dispatched to appropriate handlers.</p>
<p>一个事件处理的循环，在这个循环中，事件被接收并调度给适当的handler。</p>
<hr />
<p><strong>run loop mode</strong></p>
<p>A collection of input sources, timer sources, and run loop observers associated with a particular name. When run in a specific “mode,” a run loop monitors only the sources and observers associated with that mode.</p>
<p>一个输入源、定时器源和run loop观察者的集合，与一个特定的名称相关联。当在一个特定的模式下运行时，一个run loop只监控与该模式相关的源和观察者。</p>
<hr />
<p><strong>run loop object</strong></p>
<p>An instance of the <code>NSRunLoop</code> class or <code>CFRunLoopRef</code> opaque type. These objects provide the interface for implementing an event-processing loop in a thread.</p>
<p><code>NSRunLoop</code>类或<code>CFRunLoopRef</code>不透明类型的实例。这些对象提供了在线程中实现事件处理循环的接口。</p>
<hr />
<p><strong>run loop observer</strong></p>
<p>A recipient of notifications during different phases of a run loop’s execution.</p>
<p>在run loop执行的不同阶段，是通知的接收者。</p>
<hr />
<p><strong>信号量 semaphore</strong></p>
<p>A protected variable that restricts access to a shared resource. Mutexes and conditions are both different types of semaphore.</p>
<p>一个受保护的变量，限制对共享资源的访问。互斥锁和条件都是不同类型的信号量。</p>
<hr />
<p><strong>信号 signal</strong></p>
<p>A UNIX mechanism for manipulating a process from outside its domain. The system uses signals to deliver important messages to an application, such as whether the application executed an illegal instruction. For more information see the <code>signal</code> man page.</p>
<p>一种UNIX机制，用于从一个进程的域外操纵该进程。系统使用信号向程序传递重要信息，例如程序是否执行了非法指令。更多信息可参阅 <code>signal</code> man page。</p>
<hr />
<p><strong>信号调度源 signal dispatch source</strong></p>
<p>A <a target="_blank" rel="noopener" href="https://developer.apple.com/library/archive/documentation/General/Conceptual/ConcurrencyProgrammingGuide/Glossary/Glossary.html#//apple_ref/doc/uid/TP40008091-CH104-SW19">dispatch source</a> used to process UNIX signals. A signal source calls your custom event handler whenever the process receives a UNIX signal.</p>
<p>用于处理UNIX信号的调度源。当进程收到UNIX信号时，信号源会调用自定义事件handler。</p>
<hr />
<p><strong>任务 task</strong></p>
<p>A quantity of work to be performed. Although some technologies (most notably Carbon Multiprocessing Services) use this term differently, the preferred usage is as an abstract concept indicating some quantity of work to be performed.</p>
<p>一个要执行的工作数量。尽管一些技术（最明显的是Carbon多处理服务）以不同的方式使用这个术语，但首选的用法是作为一个抽象的概念，表示要执行的一些工作的数量。</p>
<hr />
<p><strong>线程 thread</strong></p>
<p>A flow of execution in a process. Each thread has its own stack space but otherwise shares memory with other threads in the same process.</p>
<p>一个进程中的执行流。每个线程都有自己的堆栈空间，但在其他方面与同一进程中的其他线程共享内存。</p>
<hr />
<p><strong>定时器调度源 timer dispatch source</strong></p>
<p>A <a target="_blank" rel="noopener" href="https://developer.apple.com/library/archive/documentation/General/Conceptual/ConcurrencyProgrammingGuide/Glossary/Glossary.html#//apple_ref/doc/uid/TP40008091-CH104-SW19">dispatch source</a> used to process periodic events. A timer source calls your custom event handler at regular, time-based intervals.</p>
<p>用于处理周期性事件的调度源。定时器源定期、基于时间的间隔调用自定义事件handler。</p>

    </div>

    
    
    
        

  <div class="followme">
    <p>欢迎关注我的其它发布渠道</p>

    <div class="social-list">

        <div class="social-item">
          <a target="_blank" class="social-link" href="/atom.xml">
            <span class="icon">
              <i class="fa fa-rss"></i>
            </span>

            <span class="label">RSS</span>
          </a>
        </div>
    </div>
  </div>


      <footer class="post-footer">
          <div class="post-tags">
              <a href="/tags/Apple/" rel="tag"># Apple</a>
              <a href="/tags/%E5%A4%9A%E7%BA%BF%E7%A8%8B/" rel="tag"># 多线程</a>
              <a href="/tags/Concurrency-Programming-Guide/" rel="tag"># Concurrency Programming Guide</a>
          </div>

        


        
    <div class="post-nav">
      <div class="post-nav-item">
    <a href="/posts/concurrency_pg_migrating_away_from_threads/" rel="prev" title="Concurrency Programming Guide：迁移线程代码">
      <i class="fa fa-chevron-left"></i> Concurrency Programming Guide：迁移线程代码
    </a></div>
      <div class="post-nav-item">
    <a href="/posts/audio_queue_services_pg_introduction/" rel="next" title="Audio Queue Services Programming Guide">
      Audio Queue Services Programming Guide <i class="fa fa-chevron-right"></i>
    </a></div>
    </div>
      </footer>
    
  </article>
  
  
  



          </div>
          
    <div class="comments" id="gitalk-container"></div>

<script>
  window.addEventListener('tabs:register', () => {
    let { activeClass } = CONFIG.comments;
    if (CONFIG.comments.storage) {
      activeClass = localStorage.getItem('comments_active') || activeClass;
    }
    if (activeClass) {
      let activeTab = document.querySelector(`a[href="#comment-${activeClass}"]`);
      if (activeTab) {
        activeTab.click();
      }
    }
  });
  if (CONFIG.comments.storage) {
    window.addEventListener('tabs:click', event => {
      if (!event.target.matches('.tabs-comment .tab-content .tab-pane')) return;
      let commentClass = event.target.classList[1];
      localStorage.setItem('comments_active', commentClass);
    });
  }
</script>

        </div>
          
  
  <div class="toggle sidebar-toggle">
    <span class="toggle-line toggle-line-first"></span>
    <span class="toggle-line toggle-line-middle"></span>
    <span class="toggle-line toggle-line-last"></span>
  </div>

  <aside class="sidebar">
    <div class="sidebar-inner">

      <ul class="sidebar-nav motion-element">
        <li class="sidebar-nav-toc">
          文章目录
        </li>
        <li class="sidebar-nav-overview">
          站点概览
        </li>
      </ul>

      <!--noindex-->
      <div class="post-toc-wrap sidebar-panel">
      </div>
      <!--/noindex-->

      <div class="site-overview-wrap sidebar-panel">
        <div class="site-author motion-element" itemprop="author" itemscope itemtype="http://schema.org/Person">
    <img class="site-author-image" itemprop="image" alt="權咚"
      src="/images/icon.png">
  <p class="site-author-name" itemprop="name">權咚</p>
  <div class="site-description" itemprop="description">🤘🤯👾</div>
</div>
<div class="site-state-wrap motion-element">
  <nav class="site-state">
      <div class="site-state-item site-state-posts">
          <a href="/archives/">
        
          <span class="site-state-item-count">84</span>
          <span class="site-state-item-name">文章</span>
        </a>
      </div>
      <div class="site-state-item site-state-categories">
            <a href="/categories/">
          
        <span class="site-state-item-count">6</span>
        <span class="site-state-item-name">分类</span></a>
      </div>
      <div class="site-state-item site-state-tags">
            <a href="/tags/">
          
        <span class="site-state-item-count">10</span>
        <span class="site-state-item-name">标签</span></a>
      </div>
  </nav>
</div>
  <div class="links-of-author motion-element">
      <span class="links-of-author-item">
        <a href="https://github.com/bqlin" title="GitHub → https:&#x2F;&#x2F;github.com&#x2F;bqlin" rel="noopener" target="_blank"><i class="fab fa-github fa-fw"></i>GitHub</a>
      </span>
      <span class="links-of-author-item">
        <a href="https://weibo.com/hearingdog" title="Weibo → https:&#x2F;&#x2F;weibo.com&#x2F;hearingdog" rel="noopener" target="_blank"><i class="fab fa-weibo fa-fw"></i>Weibo</a>
      </span>
  </div>


  <div class="links-of-blogroll motion-element">
    <div class="links-of-blogroll-title"><i class="fa fa-link fa-fw"></i>
      Links
    </div>
    <ul class="links-of-blogroll-list">
        <li class="links-of-blogroll-item">
          <a href="https://xiaozhuanlan.com/metal-reference-translation" title="https:&#x2F;&#x2F;xiaozhuanlan.com&#x2F;metal-reference-translation" rel="noopener" target="_blank">Metal内参</a>
        </li>
        <li class="links-of-blogroll-item">
          <a href="https://xiaozhuanlan.com/wwdc21" title="https:&#x2F;&#x2F;xiaozhuanlan.com&#x2F;wwdc21" rel="noopener" target="_blank">WWDC21 内参</a>
        </li>
    </ul>
  </div>

      </div>

    </div>
  </aside>
  <div id="sidebar-dimmer"></div>


      </div>
    </main>

    <footer class="footer">
      <div class="footer-inner">
        

        

<div class="copyright">
  
  &copy; 2016 – 
  <span itemprop="copyrightYear">2022</span>
  <span class="with-love">
    <i class="fa fa-heart"></i>
  </span>
  <span class="author" itemprop="copyrightHolder">權咚</span>
    <span class="post-meta-divider">|</span>
    <span class="post-meta-item-icon">
      <i class="fa fa-chart-area"></i>
    </span>
    <span title="站点总字数">279k</span>
    <span class="post-meta-divider">|</span>
    <span class="post-meta-item-icon">
      <i class="fa fa-coffee"></i>
    </span>
    <span title="站点阅读时长">4:14</span>
</div>
  <div class="powered-by">由 <a href="https://hexo.io/" class="theme-link" rel="noopener" target="_blank">Hexo</a> & <a href="https://theme-next.org/" class="theme-link" rel="noopener" target="_blank">NexT.Gemini</a> 强力驱动
  </div>

        
<div class="busuanzi-count">
  <script async src="https://busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"></script>
    <span class="post-meta-item" id="busuanzi_container_site_uv" style="display: none;">
      <span class="post-meta-item-icon">
        <i class="fa fa-user"></i>
      </span>
      <span class="site-uv" title="总访客量">
        <span id="busuanzi_value_site_uv"></span>
      </span>
    </span>
    <span class="post-meta-divider">|</span>
    <span class="post-meta-item" id="busuanzi_container_site_pv" style="display: none;">
      <span class="post-meta-item-icon">
        <i class="fa fa-eye"></i>
      </span>
      <span class="site-pv" title="总访问量">
        <span id="busuanzi_value_site_pv"></span>
      </span>
    </span>
</div>








      </div>
    </footer>
  </div>

  
  <script src="/lib/anime.min.js"></script>
  <script src="//cdn.jsdelivr.net/npm/pangu@4/dist/browser/pangu.min.js"></script>

<script src="/js/utils.js"></script>


<script src="/js/schemes/pisces.js"></script>


<script src="/js/next-boot.js"></script>




  
  <script>
    (function(){
      var canonicalURL, curProtocol;
      //Get the <link> tag
      var x=document.getElementsByTagName("link");
		//Find the last canonical URL
		if(x.length > 0){
			for (i=0;i<x.length;i++){
				if(x[i].rel.toLowerCase() == 'canonical' && x[i].href){
					canonicalURL=x[i].href;
				}
			}
		}
    //Get protocol
	    if (!canonicalURL){
	    	curProtocol = window.location.protocol.split(':')[0];
	    }
	    else{
	    	curProtocol = canonicalURL.split(':')[0];
	    }
      //Get current URL if the canonical URL does not exist
	    if (!canonicalURL) canonicalURL = window.location.href;
	    //Assign script content. Replace current URL with the canonical URL
      !function(){var e=/([http|https]:\/\/[a-zA-Z0-9\_\.]+\.baidu\.com)/gi,r=canonicalURL,t=document.referrer;if(!e.test(r)){var n=(String(curProtocol).toLowerCase() === 'https')?"https://sp0.baidu.com/9_Q4simg2RQJ8t7jm9iCKT-xh_/s.gif":"//api.share.baidu.com/s.gif";t?(n+="?r="+encodeURIComponent(document.referrer),r&&(n+="&l="+r)):r&&(n+="?l="+r);var i=new Image;i.src=n}}(window);})();
  </script>




  
<script src="/js/local-search.js"></script>











<script>
if (document.querySelectorAll('pre.mermaid').length) {
  NexT.utils.getScript('//cdn.jsdelivr.net/npm/mermaid@8/dist/mermaid.min.js', () => {
    mermaid.initialize({
      theme    : 'default',
      logLevel : 3,
      flowchart: { curve     : 'linear' },
      gantt    : { axisFormat: '%m/%d/%Y' },
      sequence : { actorMargin: 50 }
    });
  }, window.mermaid);
}
</script>


  

  

  

<link rel="stylesheet" href="//cdn.jsdelivr.net/npm/gitalk@1/dist/gitalk.min.css">

<script>
NexT.utils.loadComments(document.querySelector('#gitalk-container'), () => {
  NexT.utils.getScript('//cdn.jsdelivr.net/npm/gitalk@1/dist/gitalk.min.js', () => {
    var gitalk = new Gitalk({
      clientID    : '7ed324dbfd2741c35c0e',
      clientSecret: '75a59e1f6a55202c4a1b0ec3570ad5b5dccbc390',
      repo        : 'bqlin.github.io',
      owner       : 'bqlin',
      admin       : ['bqlin'],
      id          : 'aa83ed03884276ff93f672ad6408466b',
        language: 'zh-CN',
      distractionFreeMode: true
    });
    gitalk.render('gitalk-container');
  }, window.Gitalk);
});
</script>

<script src="/live2dw/lib/L2Dwidget.min.js?094cbace49a39548bed64abff5988b05"></script><script>L2Dwidget.init({"pluginRootPath":"live2dw/","pluginJsPath":"lib/","pluginModelPath":"assets/","tagMode":false,"debug":false,"model":{"scale":1,"jsonPath":"/live2dw/assets/hijiki.model.json"},"display":{"position":"right","vOffset":-100},"mobile":{"show":false,"scale":0.5},"log":false});</script></body>
</html>
